from selenium import webdriver
# 导入动作链
from selenium.webdriver import ActionChains
import time
url = 'http://www.baidu.com'

driver = webdriver.Chrome()

driver.get(url)
# 创建动作池对象
acobj = ActionChains(driver)

# 定位到百度的logo图片
el_lg = driver.find_element_by_id('lg')

# 添加邮件点击动作并执行
acobj.context_click(el_lg).perform()

# print (dir(acobj))

time.sleep(1)
driver.close()


# 双击 double_click()
from selenium import webdriver
# 导入动作链
from selenium.webdriver import ActionChains
import time

url = 'http://www.baidu.com'

driver = webdriver.Chrome()
driver.get(url)
# 创建动作对象
acobj = ActionChains(driver)
# 定位到视频元素
el = driver.find_element_by_css_selector('a.mnav:nth-child(1)')

# 执行双击操作
acobj.double_click(el).perform()

time.sleep(1)

driver.quit()

# 鼠标悬停 move_to_element()
from selenium  import webdriver
from selenium.webdriver import ActionChains
import time

url = 'https://www.jd.com/'
driver = webdriver.Chrome()
driver.get(url)

#获取左侧种类元素列表
mylist = driver.find_elements_by_css_selector('li.cate_menu_item')
# print (mylist)
# 创建动作动作对象
acobj = ActionChains(driver)

for el in mylist:
    acobj.move_to_element(el).perform()
    time.sleep(1)

driver.close()

# 2.键盘事件
# Keys()类提供了键盘上几乎所有按键的方法。 前面了解到， send_keys()方法可以用来模拟键盘输入， 除此 之外， 我们还可以用它来输入键盘上的按键， 甚至是组合键， 如 Ctrl+A、 Ctrl+C 等。
from selenium import  webdriver
from selenium.webdriver.common.keys import Keys
import time

# print (dir(Keys))

url = 'https://cn.bing.com/'

driver = webdriver.Chrome()
driver.get(url)

el = driver.find_element_by_id('sb_form_q')

el.send_keys('selenium')
# 全选并删除
el.send_keys(Keys.CONTROL,'a')
time.sleep(3)
el.send_keys(Keys.CONTROL,'x')

# 退格并回车
el.send_keys('seleniumm')
time.sleep(3)
el.send_keys(Keys.BACK_SPACE)
time.sleep(3)
el.send_keys(Keys.ENTER)

time.sleep(5)
driver.quit()
# 以下为常用的键盘操作：
# send_keys(Keys.BACK_SPACE) 删除键（BackSpace）
# send_keys(Keys.SPACE) 空格键(Space)
# send_keys(Keys.TAB) 制表键(Tab)
# send_keys(Keys.ESCAPE) 回退键（Esc）
# send_keys(Keys.ENTER) 回车键（Enter）
# send_keys(Keys.CONTROL,‘a’) 全选（Ctrl+A）
# send_keys(Keys.CONTROL,‘c’) 复制（Ctrl+C）
# send_keys(Keys.CONTROL,‘x’) 剪切（Ctrl+X）
# send_keys(Keys.CONTROL,‘v’) 粘贴（Ctrl+V）
# send_keys(Keys.F1) 键盘 F1
# ……
# send_keys(Keys.F12) 键盘 F12